#ifndef NPAGE_H
#define NPAGE_H

#include <QObject>
#include <QtMath>
#include "GY_ControlLibrary_global.h"

/**
 * @brief The NPage class 列表数据分布基类
 */
class GY_CONTROLLIBRARY_EXPORT GY_NPage
{
public:
    GY_NPage();

    /**
     * @brief setListCount 设置列表数据总数
     * @param count
     */
    GY_NPage* setListCount(const qint32 &count);
    /**
     * @brief setPageSize 设置列表每页显示的数量
     * @param pageSize
     */
    GY_NPage* setPageSize(const qint32 &pageSize);
    /**
     * @brief getMaxPage 获取最大页码数
     * @return
     */
    qint32 getMaxPage();
    /**
     * @brief setCurrentPage 设置当前页码数
     * @param page
     */
    GY_NPage* setCurrentPage(const qint32 &page);
    /**
     * @brief getCurrentPage 获取当前页码
     * @return
     */
    qint32 getCurrentPage();
    /**
     * @brief getPrePage 获取上一页码
     * @return
     */
    qint32 getPrePage();
    /**
     * @brief getNextPage 获取下一页码
     * @return
     */
    qint32 getNextPage();
    /**
     * @brief getFirstPage 获取第一页
     * @return
     */
    qint32 getFirstPage();
    /**
     * @brief getLastPage 获取最后一页
     * @return
     */
    qint32 getLastPage();

private:
    //!数据总数
    qint32 m_listCount = 0;
    //!每页分页数量
    qint32 m_pageSize = 10;
    //!当前页码
    qint32 m_currentPage = 1;
    //!最大分页数量
    qint32 m_maxPage = 1;
    /**
     * @brief calculateMaxPage 计算最大分页数
     */
    void calculateMaxPage();
};

#endif // NPAGE_H
